package com.lixw.jdbc.core.dao;

import com.lixw.jdbc.core.wrapper.FieldWrapper;

import java.util.List;

/**
 * @InterFaceName: TableMetaData
 * @description:
 * @author: xuweiLi
 * @create: 2025/5/30 19:53
 **/
public interface TableMetaData<T,P> {
    /**
     * 获取实体class类型
     */
    Class<T> getEntityClass();
    /**
     * 获取主键class类型
     */
    Class<P> getPrimaryKeyClass();
    /**
     * 获取表名称
     */
    String getTableName();
    /**
     * 获取表字段
     */
    List<String> getTableFieldNames();
    /**
     * 获取表字段
     */
    List<FieldWrapper> getTableFieldWrappers(Object obj);

    /**
     * 获取字段个数
     */
    int getTableFieldCount();

}
